// pages/new/new.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    newsList: [],
    loading: true,
    error: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.fetchNews();
  },

  /**
   * 获取新闻数据
   */
  fetchNews() {
    const that = this;
    this.setData({
      loading: true,
      error: false
    });

    // 调用天行API的国内新闻接口
    wx.request({
      url: 'https://apis.tianapi.com/guonei/index', 
      method: 'POST', 
      data: {
        key: '1e203ed13eca269cc977e5dbc52234a6', // 请替换为您的实际APIKEY
        num: '10'
      }, 
      header: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }, 
      success: function (res) {
        console.log('API响应数据:', res.data);
        console.log('数据类型:', typeof res.data.result);
        console.log('是否为数组:', Array.isArray(res.data.result));
        
        if(res.data.code == 200){
          let formattedNews = [];
          
          // 检查result是否为数组
          if(Array.isArray(res.data.result)) {
            // 如果是数组，使用map转换
            formattedNews = res.data.result.map(item => {
              return {
                title: item.title,
                description: item.description || item.content || '', // 使用description或content作为描述
                url: item.url || '',
                urlToImage: item.picUrl || '/assets/images/profile/v1.png', // 使用picUrl或默认图片
                publishedAt: item.ctime || item.pubDate || '', // 使用ctime或pubDate作为发布时间
                source: { name: item.source || '新闻来源' } // 使用source或默认值
              };
            });
          } else if(typeof res.data.result === 'object' && res.data.result !== null) {
            // 如果result是一个对象，可能包含新闻列表的属性
            // 尝试找到包含新闻数据的属性
            for(const key in res.data.result) {
              if(Array.isArray(res.data.result[key])) {
                formattedNews = res.data.result[key].map(item => {
                  return {
                    title: item.title || '',
                    description: item.description || item.content || '', 
                    url: item.url || '',
                    urlToImage: item.picUrl || '/assets/images/profile/v1.png',
                    publishedAt: item.ctime || item.pubDate || '',
                    source: { name: item.source || '新闻来源' }
                  };
                });
                break;
              }
            }
            
            // 如果没有找到数组，尝试将result本身作为单个新闻项
            if(formattedNews.length === 0 && res.data.result.title) {
              formattedNews = [{
                title: res.data.result.title || '',
                description: res.data.result.description || res.data.result.content || '',
                url: res.data.result.url || '',
                urlToImage: res.data.result.picUrl || '/assets/images/profile/v1.png',
                publishedAt: res.data.result.ctime || res.data.result.pubDate || '',
                source: { name: res.data.result.source || '新闻来源' }
              }];
            }
          }
          
          // 如果仍然没有数据，使用模拟数据
          if(formattedNews.length === 0) {
            console.log('无法解析API返回的数据结构，使用模拟数据');
            formattedNews = that.getMockNewsData();
          }
          
          that.setData({
            newsList: formattedNews,
            loading: false
          });
        } else {
          console.error('获取新闻数据失败:', res.data);
          that.setData({
            newsList: that.getMockNewsData(), // 失败时使用模拟数据
            loading: false,
            error: true
          });
        }
      },
      fail: function (err) {
        console.error('获取新闻数据失败:', err);
        that.setData({
          newsList: that.getMockNewsData(), // 失败时使用模拟数据
          loading: false,
          error: true
        });
      }
    });
  },

  /**
   * 获取模拟新闻数据
   */
  getMockNewsData() {
    return [
      {
        title: '科技创新推动经济发展',
        description: '最新研究表明，科技创新是推动经济可持续发展的关键因素。',
        url: 'https://example.com/news/1',
        urlToImage: 'https://via.placeholder.com/300x200?text=科技创新',
        publishedAt: '2023-05-15T08:30:00Z',
        source: { name: '科技日报' }
      },
      {
        title: '人工智能在医疗领域的应用',
        description: '人工智能技术正在改变医疗行业，提高诊断准确率和治疗效果。',
        url: 'https://example.com/news/2',
        urlToImage: 'https://via.placeholder.com/300x200?text=AI医疗',
        publishedAt: '2023-05-14T10:15:00Z',
        source: { name: '健康时报' }
      },
      {
        title: '全球气候变化引发关注',
        description: '最新气候报告显示，全球气温持续上升，各国需采取更积极的应对措施。',
        url: 'https://example.com/news/3',
        urlToImage: 'https://via.placeholder.com/300x200?text=气候变化',
        publishedAt: '2023-05-13T14:45:00Z',
        source: { name: '环球时报' }
      },
      {
        title: '数字经济成为新增长点',
        description: '数字经济在全球范围内快速发展，成为拉动经济增长的新引擎。',
        url: 'https://example.com/news/4',
        urlToImage: 'https://via.placeholder.com/300x200?text=数字经济',
        publishedAt: '2023-05-12T09:20:00Z',
        source: { name: '经济观察报' }
      },
      {
        title: '教育改革推进素质教育',
        description: '新一轮教育改革方案出台，着重培养学生的创新能力和综合素质。',
        url: 'https://example.com/news/5',
        urlToImage: 'https://via.placeholder.com/300x200?text=教育改革',
        publishedAt: '2023-05-11T16:30:00Z',
        source: { name: '教育时报' }
      }
    ];
  },

  /**
   * 查看新闻详情
   */
  viewNewsDetail(e) {
    const index = e.currentTarget.dataset.index;
    const newsItem = this.data.newsList[index];
    
    // 提示用户需要配置业务域名
    wx.showModal({
      title: '新闻详情',
      content: `您点击了"${newsItem.title}"。要查看完整新闻，请在小程序后台配置业务域名，将新闻网站域名添加到web-view业务域名列表中。`,
      confirmText: '继续查看',
      cancelText: '查看提示',
      success: (res) => {
        if (res.confirm) {
          // 尝试使用web-view组件打开新闻链接
          wx.navigateTo({
            url: `../webview/webview?url=${encodeURIComponent(newsItem.url)}&title=${encodeURIComponent(newsItem.title)}`
          });
        } else if (res.cancel) {
          // 显示配置业务域名的提示
          wx.showModal({
            title: '如何配置业务域名',
            content: '1. 登录微信公众平台\n2. 进入小程序管理后台\n3. 点击"开发"->"开发管理"->"业务域名"\n4. 添加新闻网站域名\n5. 下载校验文件并上传至域名服务器',
            showCancel: false,
            confirmText: '我知道了'
          });
        }
      }
    });
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.fetchNews();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 加载更多新闻
    // 这里可以实现分页加载
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '看一看 - 最新资讯',
      path: '/pages/new/new'
    };
  }
})